package com.xayy.health.mgt.service;

import cn.kawins.base.result.CheckResult;
import cn.kawins.mybatis.BaseService;
import com.xayy.health.mgt.model.HealthAlgorithmManage;
import com.xayy.health.mgt.model.dto.AlgorithmDto;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author zhangxa
 */
public interface HealthAlgorithmManageService extends BaseService<HealthAlgorithmManage> {

    /**
     * 根据类型获取可用算法列表
     * @param type 1:剔野,2:填充,3:平滑,4:事后诊断,5:趋势预测
     * @return 算法列表信息
     */
    List<HealthAlgorithmManage> getAlgorithmByType(Integer type);

    /**
     * 算法状态上报
     * @return 结果日志
     */
    List<HealthAlgorithmManage> selectAlgorithmByType();

    /**
     * 保存上传算法信息
     * @param algorithmDto 算法信息
     */
    void saveUploadMessage(AlgorithmDto algorithmDto);

    /**
     * 报错算法信息
     * @param healthAlgorithmManage 算法信息
     * @param algorithmFile 算法文件
     * @return 结果日志
     */
    CheckResult<?> saveAlgorithmInfo(HealthAlgorithmManage healthAlgorithmManage, MultipartFile algorithmFile);

    /**
     * 启动算法服务
     * @param healthAlgorithmManage 算法信息
     * @return 结果日志
     */
    CheckResult<?> startAlgorithmServer(HealthAlgorithmManage healthAlgorithmManage);

    /**
     * 停止算法服务
     * @param healthAlgorithmManage 算法实体
     * @return 结果日志
     */
    CheckResult<?> stopAlgorithmServer(HealthAlgorithmManage healthAlgorithmManage);

    /**
     * 查询模型信息
     * @param id 信息
     * @return 结果日志
     */
    CheckResult<?> selectModel(Long id);

}
